package cn.fscode.code.generator.service;

import cn.fscode.code.generator.model.po.TemplateGroupPO;
import cn.fscode.code.generator.model.req.TemplateGroupListReq;
import cn.fscode.code.generator.model.resp.TemplateGroupResp;

import java.util.List;

/**
 * @author shenguangyang
 */
public interface TemplateGroupService {
    /**
     * 查询所有记录
     *
     * @return 返回集合，没有返回空List
     */
    List<TemplateGroupResp> listTemplateGroup(TemplateGroupListReq req);

    /**
     * 根据主键查询
     *
     * @param id 主键
     * @return 返回记录，没有返回null
     */
    TemplateGroupPO getById(Long id);

    /**
     * 新增，插入所有字段
     *
     * @param templateGroupPO 新增的记录
     */
    void save(TemplateGroupPO templateGroupPO);

    /**
     * 修改，修改所有字段
     *
     * @param templateGroupPO 修改的记录
     */
    void updateById(TemplateGroupPO templateGroupPO);

    /**
     * 删除记录
     *
     * @param templateGroupPO 待删除的记录
     */
    void deleteById(TemplateGroupPO templateGroupPO);

    /**
     * 删除记录
     *
     * @param templateGroupPO 待删除的记录
     */
    void deleteGroup(TemplateGroupPO templateGroupPO);

    TemplateGroupPO getByName(String name);

    void deleteGroupBatch(List<Long> ids);
}
